home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************
- * *
- * HAPPy assembler & interpriter common header *
- * *
- * Copyright (c) H.Asano 1992-1994. *
- * *
- *********************************************************************/
-
-
- #define Maxstore 13000 /* 記憶装置の大きさ(ワード数) */
- #define Maxint 2147483647L /* 最大整数値 */
- #define Largeint 32768L /* shortより大きい数 */
-
- #define NilValue Maxstore + 1 /* ポインタのnilの値 */
-
- #define inputadr 5 /* input バッファアドレス */
- #define outputadr 6 /* outputバッファアドレス */
-
- #define MaxIDlng 32 /* 名前の最大識別可能文字数 */
- #define MaxRFlen 32 /* 実ファイル名の最大長 */
- #define Maxfileno 8 /* 最大ファイル数(input,output以外)*/
- #define addset(Set,pos) ((Set) |= ( (long)1 << (pos) ))
-
- typedef long integer ; /* integer は long型とする */
- typedef enum bool {false , /* 偽 */
- true /* 真 */
- } boolean ; /* pascalのboolean型と同じ */
-
- typedef struct { /********* 命令格納域 型定義 */
- unsigned char op ; /* operation */
- char p ; /* p operand */
- short q ; /* q operand */
- } _code ;
-
- typedef union { /****** 記憶装置 型定義 */
- integer vi ; /* integer */
- float vr ; /* real */
- short vb ; /* boolean */
- long vs ; /* set (0..31) */
- short vc ; /* char */
- short va ; /* address */
- _code vo ; /* object code */
- } _store ;
-
- typedef enum fmode {
- undefined , /* 不定 */
- inspection , /* 検査モード */
- generation /* 生成モード */
- } fmode ;
-
- typedef struct fileinfo { /* ファイル情報テーブル */
- char filename[MaxIDlng+1] ; /* 外部ファイル 論理ファイル名 */
- boolean askflag ; /* 実ファイル名を問い合わせる時 真 */
- short fileadr ; /* P-code上の ファイル変数アドレス */
- short filesize ; /* バッファ変数の大きさ */
- char rfname[MaxRFlen+1] ; /* 実ファイル名 */
- _store *filebuf ; /* バッファ変数アドレス */
- boolean textfile ; /* テキストファイルの時 真 */
- boolean eolnflag ; /* テキストファイルのeolnの時 真 */
- boolean writelnflag; /* 最後が改行の時 真 */
- FILE *fp ; /* ファイルポインタ */
- fmode mode ; /* 生成モード / 検査モード / 不定 */
- } fileinfo ;
-
- EXTERN fileinfo fi[Maxfileno+2] ;